import axios from 'axios';
import { ElMessage } from 'element-plus';

const instance = axios.create({
  baseURL: 'https:/v3pz.itndedu.com/v3pz',
  timeout: 10000,
});

// 设置请求拦截器
instance.interceptors.request.use(
  (config) => {
    // 获取token
    const token = localStorage.getItem('pz_token');
    // 设置白名单，也就是哪些接口不需要携带token
    const whiteUrl = ['/get/code', '/user/authentication', '/login'];
    if(token && !whiteUrl.includes(config.url)) {
      config.headers['x-token'] = token;
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 设置相应拦截器
instance.interceptors.response.use(
  (response) => {
    if(response.data.code === -1) { //如果code为-1，则为失败
      ElMessage.warning(response.data.message);
    }

    if(response.data.code === -2) { //如果是code为-2，则表示token过期，这些其实都是跟后端约定的，都是需要提前问后端的
      // token一旦过期，我们就要把登录的token和用户信息从本地存储中清除掉
      // ElMessage.warning('登录过期，请重新登录');
      // localStorage.removeItem('pz_token');
      // localStorage.removeItem('pz_userInfo');
      // token过期后，肯定是要跳转至登录页的
      // window.location.href = window.location.origin;
    }

    return response.status === 200 ? response.data : Promise.reject(response.data); //返回数据
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 导出实例
export default instance;